package com.transaction.demo.accounting.vo.req;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.io.Serializable;
import java.util.Date;

import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 描述：会计原始凭证表
 * 作者：马庆智
 * 日期：2023/04/27 17:54:01
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel("会计原始凭证表请求listVo")
public class AccountingVoucherListReqVo implements Serializable {

    @ApiModelProperty("当前页")
    @NotNull(message = "current当前页不能为空")
    @Min(value=1,message = "current当前页不能小于1")
    private int current;

    @ApiModelProperty("每页的数量")
    @NotNull(message = "pageSize每页的数量不能为空")
    private int pageSize;


    @ApiModelProperty("会计分录类型")
    //@NotBlank(message = "entryType会计分录类型不能为空")
    private short entryType;

    @ApiModelProperty("请求号")
    //@NotBlank(message = "requestNo请求号不能为空")
    private String requestNo;

    @ApiModelProperty("来源系统")
    //@NotBlank(message = "fromSystem来源系统不能为空")
    private short fromSystem;

    @ApiModelProperty("原始凭证号")
    //@NotBlank(message = "voucherNo原始凭证号不能为空")
    private String voucherNo;

    @ApiModelProperty("会计日期")
    //@NotBlank(message = "accountingDate会计日期不能为空")
    private Date accountingDate;

    @ApiModelProperty("付款方账号")
    //@NotBlank(message = "payerAccountNo付款方账号不能为空")
    private String payerAccountNo;

    @ApiModelProperty("收款方账号")
    //@NotBlank(message = "receiverAccountNo收款方账号不能为空")
    private String receiverAccountNo;

    @ApiModelProperty("银行账户")
    //@NotBlank(message = "bankAccount银行账户不能为空")
    private String bankAccount;

    @ApiModelProperty("银行渠道编码")
    //@NotBlank(message = "bankChannelCode银行渠道编码不能为空")
    private String bankChannelCode;


    @ApiModelProperty("银行订单号")
    //@NotBlank(message = "bankOrderNo银行订单号不能为空")
    private String bankOrderNo;

    @ApiModelProperty("付款方帐户类型")
    //@NotBlank(message = "payerAccountType付款方帐户类型不能为空")
    private short payerAccountType;

    @ApiModelProperty("收款方帐户类型")
    //@NotBlank(message = "receiverAccountType收款方帐户类型不能为空")
    private short receiverAccountType;


}